#if !defined(__CAM_SNAP_H_)
#define __CAM_SNAP_H_

#define SNAP_SHOT_WIDTH   240
#define SNAP_SHOT_HEIGHT  320

#define SNAPSHOT_FREAMS 1

class CCamSnapshot
{
    public:
        BYTE *m_OutFramesBuffer;
        uint_t m_uOrder;
        int m_iWidth;
        int m_iHeight;
        unsigned long m_ulSnapshotBufFrameLen;
        DzEvent m_event;
        Uint16 *m_SnapshotAppBuffer[SNAPSHOT_FREAMS];
        int m_iZoom;//Must be supported
        int m_iContinuousSnaps;//Must be supported
    private:
        ECode CreateBuffer(int iWidth, int iHeight);
        void  FreeBuffer();
    public:
        CCamSnapshot();
        ECode Initialize();
        void  Destroy();
        void  DoSnapshot(void *pFrameBuffer);
        ECode GetSnapshotFrames(int iWidth, int iHeight, Camera_Photo *pPhoto);
        void ReleaseFrames();
};

#endif //__CAM_SNAP_H_
